package cn.tedu.csmall.server.schedule;

import cn.tedu.csmall.server.mapper.BrandMapper;
import cn.tedu.csmall.server.pojo.vo.BrandListItemVO;
import cn.tedu.csmall.server.repo.IBrandRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 定期更新redis中品牌列表数据
 */
@Slf4j
@Component
public class CacheSchedule {
    /**
     * 计划任务，默认不开启，需要配置类进行配置
     * 当cron属性时：取值十亿空格分隔6-7个值，其中    ，最后一个值表示年
     * 其他各个位置从左到右：秒 分 时 日 月 周
     * 例如：cron=“56 23 18 ? * MON” 表示：每个月的周一（无视几号）的18：23：56执行此任务
     */
    @Scheduled(fixedRate = 5 * 1000)
    public void a() {
        log.debug("执行计划任务，更新缓存中的品牌列表");
    }


    @Autowired
    private IBrandRepository brandRepository;
    @Autowired
    private BrandMapper brandMapper;

    @Scheduled(fixedRate = 60 * 60 * 1000)
    public void updateList() {
        log.debug("执行CachePreload.run方法");
        List<BrandListItemVO> list = brandMapper.list();
        brandRepository.deleteList();
        brandRepository.putList(list);
    }
}
